package com.cskaoyan.charstream.introduction;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

/*
       我们已经，学习了字节流，下面我们首先通过字节流，完成如下功能：

        1.向文本中写入数字或英文字符，然后将其读入内存，并在控制台上显示
        2.向文本中写入中文字符，将其读入内存，并在控制台上显示

        是否两次都能正确的显示呢？ 包含中文字符就无法正确显示了

        原因在于：
             一个中文字符在计算机中存储，也会对应一个整数值，但一个中文字符
             对应的整数值是由多个字节来表示的，所以如果我们每次只将一个字节转化为
             一个字符，就无法正确的输出中文字符

             在不同的字符集中，中文字符对应的整数值，占用的字节数量也是不一样


       结论: 在某些场景下，使用字节流来操作文本数据，不太方便

 */
public class Demo1 {

    public static void main(String[] args) throws IOException {

        InputStream is = new FileInputStream("a.txt");

        int readByte;
        while ((readByte = is.read()) != -1) {
            char c = (char) readByte;
            System.out.print(c);
        }

        // 关闭流，释放资源
        is.close();

    }
}
